Flexible Bytecode for Linking in .NET

نویسندگان

  • Alex Buckley
  • Michelle Murray
  • Susan Eisenbach
  • Sophia Drossopoulou
چکیده

Dynamic linking in modern execution environments like .NET is considerably more sophisticated than in the days of C shared libraries on UNIX. One aspect of this sophistication is that .NET assemblies embed type information about dynamically linked resources. This type information implicitly represents compile-time assumptions about the resources available at run-time. However, the resources available at run-time may differ from those available at compile-time. For example, the execution environment on a mobile phone might provide fewer, simpler classes than on a desktop PC. As bytecode cannot adapt to its execution environment, component reuse is restricted and development costs are increased. We have designed and implemented a “flexible” dynamic linking scheme that binds bytecode as late as possible to the assemblies and classes available in a .NET execution environment. We describe the scheme’s integration with the .NET linking infrastructure, review important design decisions and report on experiences with the “Rotor” shared source version of .NET.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Safety in Flexible Dynamic Linking

Dynamic linking lets programs use the most recent versions of classes without re-compilation. In Java and .NET, bytecode specifies which classes should be dynamically linked. This information represents the compiler’s knowledge of the compilation environment, but the execution environment might be different. For example, the execution environment on a mobile phone might provide fewer, simpler c...

متن کامل

Flexible Dynamic Linking

Dynamic linking, as in Java and C#, allows users to execute the most recent versions of software without re-compilation or re-linking. Dynamic linking is guided by type names stored in the bytecode. In current dynamic linking schemes, these type names are hard-coded into the bytecode. Thus, the bytecode reflects the compilation environment that produced it. However, the compilation environment ...

متن کامل

Towards a CLI Assembly Format for Embedded Systems

Bytecode-based Middleware and virtual execution environments have become popular in development for embedded Systems. The ECMA/ISO Common Language Infrastructure (CLI) specifies a bytecode-based execution environment (Common Language Runtime) and a comprehensive class library. As Microsoft’s CLI implementation the .NET Compact Framework was built for high-end mobile devices. It would be reasona...

متن کامل

Improved Compilation of Prolog to C Using Moded Types and Determinism Information

We describe the current status of and provide performance results for a prototype compiler of Prolog to C. The compiler is novel in that it is designed to accept different kinds of high-level information, typically obtained via an automatic analysis of the initial Prolog program and expressed in a standardized language of assertions, and use this information to optimize the resulting C code, wh...

متن کامل

Type Safety of Generics for the .NET Common Language Runtime

The Microsoft .NET Common Language Runtime (CLR) offers support for generic types and methods. We develop a mathematical specification for the generics design through a type system and a model for the semantics of a subset of bytecode instructions with generics. We formalize the type-consistency checks performed for the subset by the CLR bytecode verifier. We then prove that adding support for ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Electr. Notes Theor. Comput. Sci.

دوره 141  شماره 

صفحات  -

تاریخ انتشار 2005